/*
 * Copyright the original author or authors.
 * 
 * Licensed under the MOZILLA PUBLIC LICENSE, Version 1.1 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.mozilla.org/MPL/MPL-1.1.html
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
 package com.blitscreen.gesture.strategy
{
	import com.blitscreen.render.BlitSprite;
	
	/**
	 * <code>GestureHitMode</code> interface defines mouse collision
	 * detection rules in a bitmap based rendering engine. A gesture
	 * hit mode is an implementation of the pattern strategy applied
	 * to mouse collision detection. 
	 * <p>
	 * The <code>isTouched</code> is the main and the only function of
	 * the <code>GestureHitMode</code> interface, concret implementation
	 * of this interface has to realize all the detection routine during
	 * the function call.
	 * </p> 
	 * @author	Cédric Néhémie
	 */
	public interface GestureHitMode
	{
		/**
		 * Returns <code>true</code> if the passed-in <code>sprite</code>
		 * contains the passed-in mouse coordinates. 
		 * 
		 * @param 	mouseX	x coordinate of the mouse 
		 * @param 	mouseY	y coordinate of the mouse
		 * @param 	sprite	sprite with which the collision detection occurs
		 * @return	<code>true</code> if the passed-in <code>sprite</code>
		 * 			contains the passed-in mouse coordinates. 
		 */
		function isTouched ( mouseX : Number, mouseY : Number, sprite : BlitSprite ) : Boolean;
	}
}